package modelo.dao;

import modelo.dao.ConexionDao;
import modelo.dto.Usuario;
import modelo.dto.Nivel;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import bean.Conexion;

public class UsuarioDao  extends ConexionDao{
	
	public UsuarioDao() {
		super();	
	}	
	
	

	public void registrarusuario(Usuario usuario) {
		String tiraSQL = "INSERT INTO tabusuario "+
		 				 "(nombre,clave, id, tiempo,minutos,segundos) "+
		 				 "VALUES ("+"'"+usuario.getNombre()+"', '"+usuario.getNivel().getClave()+"',"+(ultimoId()+1)+
		 				 ",'" +usuario.getTiempo()+"', "+usuario.getMinutos()+", "+usuario.getSegundos()+")";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Usuario> consultarPuntuacion() {
		List<Usuario> usuarios = new ArrayList<Usuario>();
		String tiraSQL = "SELECT * FROM tabusuario";
	    
	    NivelDao niveldao=new NivelDao();
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String nombre = resultSet.getString("nombre");
				String clave = resultSet.getString("clave");
				String tiempo = resultSet.getString("tiempo");
				int minutos=resultSet.getInt("minutos");
				int segundos=resultSet.getInt("segundos");
				Usuario usuario = new Usuario(niveldao.ExtraerNivel(clave), nombre, tiempo,minutos, segundos);
				usuarios.add(usuario);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return usuarios;
	}
	
	public int ultimoId()
	{
		int id=0;
		String tiraSQL = "SELECT * FROM tabusuario";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				if(resultSet.isLast())
				{
				id= resultSet.getInt("id");
		     	}
			}
	}catch (SQLException e) {
		e.printStackTrace();
	}
return id;
	
}
}
